#include"headfile.h"


int login(const char * id) //登陆操作
{
    int num = getLine("./document/user.txt"); //获取文件中成员的个数
    FILE * fp = fopen("./document/user.txt","r"); //以读形式打开文件
    bool is = false; //为真表示用户存在，为假表示用户不存在
    for(int i = 0; i < num; i++) //输入的用户名和文件中的用户名进行匹配
    {
        member user = {0,0,0,0,0};
        fscanf(fp,"%d%s%s",&user.id, user.name, user.password);
        char id_arr[N] = {0};
        if(user.id == atoi(id))
        {
            mistack = 0;
            is = true;
            char password[N];
            printf("请输入密码 若输入返回则返回到菜单:");
passwd:     memset(password,0,N);
            system("stty -echo");//关闭回显功能，在终端进行输入的时候不显示密码
            scanf("%s",password);
            mistack++;
            system("stty echo");//打开回显功能
            fclose(fp);

            if(0 == strcmp("返回",password)) //若password输入“返回”则返回到菜单
                return 0;
            else if(0 == strcmp(user.password,password)) //如果password输入的密码和匹配的某用户的密码一样则登陆
            {
                system("clear");
                strcpy(passwd_login,password);
                strcpy(id_login,id);
                strcpy(name_login,user.name);
                if(0 == strcmp(id,"0")) //id是0则以管理员用户登陆
                {
                    function(admin_num);
                    return 0;
                }
                else //id不是0则以学生用户登陆
                {
                    function(stu_num);
                    return 0;
                }
            }
            else //若password输入的不是“返回”和正确的密码则通过goto到passwd重新进行输入
            {
                if(3 == mistack)
                {   
                    printf("\n密码三次输入错误,程序即将退出！\n");
                    sleep(1); 
                    exit(-1);
                }
                printf("\n%s用户第%d次密码输入不正确,请重新进行输入 三次密码输入错误将退出程序:",user.name,mistack);
                goto passwd;
            }
        }
    }
    if(false == is)
    {
        printf("id号:%s不存在!\n",id);
        fclose(fp);
        return -1;
    }
}